<--- %%NOBANNER%% --> now.sas
 BackForward
/*-------------------<---Start of Description-->---------------------\
| Return the current system date or datetime;                        |
|---------------------<---End of Description-->----------------------|
|--------------------------------------------------------------------|
|------------<---Start of Files or Arguments Needed-->---------------|
| Inputs:                                                            |
|   datetimeformat - the output datetime format: either a date format|
|                    or a datetime format;                           |
|------------------<---End of Arguments Needed-->--------------------|
|--------------------------------------------------------------------|
|------------------<---Start of Files Created-->---------------------|
| Example: %put %now(worddate20.);                                   |
| Usage: %now(datetimeformat);                                       |
\-------------------<---End of Files Created-->---------------------*/
/* %put %now(worddate20.); */
%macro now/parmbuff;
%let syspbuff=%debracket(&syspbuff); 
%if (%length(%sysfunc(compress(&syspbuff))) le 1) %then %do; 
   %let syspbuff=datetime22.; 
   %sysfunc(datetime(), &syspbuff); 
%end;
%else %if (%index(%sysfunc(compress(%quote(%upcase(&syspbuff)))), DATETIME)) %then %sysfunc(datetime(), &syspbuff); 
%else %if ((%length(%sysfunc(compress(&syspbuff))) gt 1) and (not 
          %index(%quote(%upcase(&syspbuff)), DATETIME))) %then %sysfunc(date(), &syspbuff); 
%mend now;